Databases - Object Oriented

About

  • ORDBMS are not as widely used as purely relational databases (RDBMS) or NoSQL, but they have niche applications and moderate popularity in certain sectors. The frequency of use depends on their specific capabilities and the type of application.

  • ORDBMS combine features of relational and object-oriented databases, allowing them to better handle complex data, such as:

    • Geospatial data (used in GIS, map systems).

    • Scientific and engineering applications (where complex objects need to be stored).

    • Media databases (storage of images, videos, and semi-structured data).

  • Some databases support object-oriented features and can be classified as ORDBMS:

    • PostgreSQL

      • One of the most popular ORDBMS, widely adopted for being free and open source, with extensions to handle complex types such as JSON, XML, and geodata.

    • Oracle Database
      Supports object features with extensions like Oracle Spatial.

    • IBM Db2

      • Has extensions that allow object-oriented functionalities.

  • RDBMS dominates the market :

    • About 85%-90% of database usage is still in classic RDBMS such as MySQL, SQL Server, and PostgreSQL.

  • NoSQL grows in popularity :

    • Banks like MongoDB and Cassandra have dominated areas that demand horizontal scalability and flexibility for unstructured data.

  • ORDBMS have specialized use :

    • ORDBMS are popular in sectors where their object-oriented features make a difference, such as:

      • Systems that use spatial data (GIS, such as ESRI and PostGIS).

      • Complex modeling in academic or financial domains.

Hybrid Databases (ORDBMS)

  • ORDBMS (Object-Relational Database Management Systems) combine features of relational databases with OOP principles.

Examples of ORDBMS
  • PostgreSQL :

    • Supports complex data types, table inheritance, and object-oriented extensions.

  • Oracle :

    • Offers object storage features through the use of Object Types.

  • IBM Db2 :

    • Supports object-oriented extensions with complex data.

ObjectDB

  • A pure object-oriented database.

  • Designed especially for Java and .NET applications.

  • Does not require Object-Relational Mapping (ORM).

  • Supports JPA/JDO queries directly in the object model.

db4o (Database for Objects)

  • A lightweight open-source database for Java and .NET, designed for direct object persistence.

  • Supports transparent object persistence.

  • Stores objects with their references directly, without the need for tables.

Versant Object Database

  • An enterprise object-oriented database, widely used in complex systems.

  • Supports Java and C++.

  • Excellent performance with complex data.

  • Applied in scientific, engineering projects, and applications with hierarchical data structures.

  • Old, not much used with the emergence of ORMs.

ZODB (Zope Object Database)

  • An object-oriented database designed for the Python language.

  • Direct persistence of Python objects.

  • Simple to use, no SQL required.

  • Used in Python applications with hierarchical data and native persistence.

GemStone/S

  • An object-oriented database designed primarily for Smalltalk.

  • Supports languages like Smalltalk and Java.

  • Offers ACID transactions and high performance.

  • Used in enterprise systems and applications with the need for persistence of complex objects.